// 创建分页组件需要的 按钮数组
// btnCount: 最多能看到几个按钮
// total: 总条数
// size: 每页几条
// page: 当前第几页
function f(total, size, page, btnCount = 5) {
  // show me your code
  const arr = [] // 能看到的页码集合
  const pagination = Math.ceil(total / size) // 最大页数
  const median = Math.ceil(btnCount / 2) // 中位数，向上取整
  const integer = Math.floor(btnCount / 2) // 中位数距离开始结束，向下取整

  if (page <= median) { // 小于中位数，就从1开始
    if (pagination > btnCount) {
      for (let i = 1; i <= btnCount; i++) {
        arr.push(i)
      }
    } else { // 最大页数 < 可以显示的页数
      for (let i = 1; i <= pagination; i++) {
        arr.push(i)
      }
    }
  } else if (page > median && pagination > btnCount && btnCount % 2 !== 0) { // btnCount为奇数的情况
    const n = page - integer // 开始的数
    const m = page + integer // 结束的数
    for (let i = n; i <= m; i++) {
      arr.push(i)
    }
  } else if (page > median && pagination > btnCount && btnCount % 2 === 0) {  // btnCount为偶数的情况
    const n = page - integer // 开始的数
    const m = page + integer - 1 // 结束的数，偶数无中位数，需要-1
    for (let i = n; i <= m; i++) {
      arr.push(i)
    }
  }
  return arr
}
// 在可能的情况下，让page处于正中间
console.log(1, f(100, 10, 1, 5)) // ==> [1, 2, 3, 4, 5]
console.log(2, f(100, 10, 7, 5)) // ==> [5, 6, 7, 8, 9]
console.log(3, f(100, 10, 2, 5)) // ==> [1, 2, 3, 4, 5]
console.log(4, f(100, 10, 5, 5)) // ==> [3, 4, 5, 6, 7]
console.log(5, f(300, 10, 20, 6))

